package com.mrjy.custom.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.mrjy.common.entity.CustomModule;
import com.mrjy.common.entity.UserInfo;
import com.mrjy.common.entity.VideoInfo;
import com.mrjy.custom.dto.CustomModuleCoursePackageDto;
import com.mrjy.custom.dto.CustomModuleDto;

public interface ICustomModuleDao {
    int deleteByPrimaryKey(Integer id);

    int insert(CustomModule record);

    int insertSelective(CustomModule record);

    CustomModule selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(CustomModule record);

    int updateByPrimaryKey(CustomModule record);
    
    /**分页查询【cmType=1,2】*/
	List<CustomModuleDto> queryPageCustomModuleForBack(CustomModuleDto moduleDto);
	/**分页查询【cmType=3】*/
    List<CustomModuleCoursePackageDto> queryPageCustomModuleForBack2(CustomModuleDto moduleDto);

    /**分页查询【免费试听】*/
	List<String> queryPageFreeVideo(CustomModuleDto module);
	
	/**
	 * 根据明师id查询该明师所有视频
	 * @param teacherName
	 * @return
	 */
	List<VideoInfo> queryVideoByTeacher(@Param(value="teacherId")String teacherId);
	

	/**
	 * 根据用户输入关键字模糊查询所有老师
	 * @param teacherName
	 * @param flag 
	 * @return
	 */
	List<UserInfo> queryAllTeacher(@Param(value="teacherName")String teacherName, @Param(value="flag")String flag);

	/**
	 * 查询总数(分页)
	 * @param module
	 * @return
	 */
	int queryCount(CustomModuleDto module);

	List<CustomModuleDto> checkDuplicate(CustomModuleDto module);

	List<CustomModuleDto> queryPageCustomModule(CustomModuleDto moduleDto);
	int countPageCustomModule(CustomModuleDto moduleDto);

	List<CustomModuleDto> queryPageCustomModule2(
			CustomModuleDto module);

    int countPageCustomModule2(
            CustomModuleDto module);

	int deleteByIds(CustomModuleDto module);

	List<CustomModuleDto> queryTopicById(CustomModuleDto module);

	int queryMaxSort();
	
	int updateByProgramIdAndType(CustomModuleDto module);

    List<CustomModuleDto> queryPercentFinish(CustomModuleDto module);

    List<CustomModuleDto> querySummaryByUserId(CustomModuleDto customModuleDto);

    int queryParentCertificationByUserId(CustomModuleDto customModuleDto);

    List<UserInfo> queryCourseUser(CustomModuleDto customModuleDto);

	List<CustomModuleDto> queryPageCustomModuleForFreeVideo(
			CustomModuleDto customModule);
}